WorldView Help Index

The User's Guide contains information on using the WorldView user interface to navigate, control image quality, and specify default settings.

The Developer's Guide provides information specific to WorldView's implementation of the VRML specification and will be most helpful to content authors.

The Release Notes provide information about important changes and known bugs in this version of WorldView.

The FAQ provides answers to frequently asked questions.

Updated versions of all these documents are available at the Intervista web site.

If you need additional assistance, please visit our support contacts page, or send e-mail to support@intervista.com.


WorldView 2.1 User's Guide

This guide describes the user interface for WorldView. It is divided into the following sections:

•	The WorldView Window

•	Navigating in WorldView

•	Controlling Image Quality

•	Setting WorldView Options


The WorldView Window

When you browse a file containing VRML, WorldView will automatically launch within your browser window.

There are four parts to the WorldView window:

•	The vertical toolbar, at the left of the screen, which contains buttons used to specify how to move within a world.

•	The horizontal toolbar, at the bottom of the screen, which contains buttons that allow you to perform corrective actions and view a world from previously defined locations.

•	The viewing area, which in this picture shows the WorldView startup screen.

•	The pop-up menu, not shown in this picture, which you access by pressing the right mouse button while the cursor is in the viewing area.

VRML authors control whether or not the toolbars are displayed when a world is loaded; therefore, you may not always see them. They may also control whether or not the right mouse menu is available.


Navigating in WorldView

This section describes the mechanisms that WorldView provides for getting from point "A" to point "B" in a VRML world. Navigating in a three-dimensional space can take some getting used to; initially, you may find some of the techniques described here more comfortable than others.

•	Using Viewpoints

•	Moving around: Walk, Pan, Turn, and Roll

•	Examining objects: Goto and Study

•	Getting your bearings: Zoom Out, Straighten Up, and Restore

•	Keyboard shortcuts for navigating

•	Interacting with worlds: Locating sensors and hyperlinks

•	Seeing where you're going: Using the headlight

•	Avoiding the furniture: Preventing collisions

•	Gunning the engine: Adjusting your speed


Using Viewpoints

The easiest way to move around a VRML world is by using Viewpoints, which are specific locations and views designed by the VRML author. Not all worlds contain Viewpoints, but when they do, you can use them to "tour" a world by way of a predefined route.

	You can see a menu that lists all of the predefined Viewpoints in a world by clicking on "View" in the horizontal toolbar, or by choosing "Viewpoints" from the pop-up menu. You may move to a particular viewpoint by choosing it from either of these menus.

You may also move to the next or previous viewpoint using the arrow buttons on the horizontal toolbar. If there are no predefined Viewpoints in a world, these arrows are inactive and dimmed.


Moving around: Walk, Pan, Turn, and Roll

Once you've gotten the hang of Viewpoints, it won't be long before you'll want to start exploring on your own. This section describes the four navigation options that WorldView offers. Unlike using Viewpoints, when navigating you control how you move by clicking the mouse and dragging it in an appropriate direction. The resulting motion is different for each option. (It can be very helpful to experiment with these tools while you read this.)

There are two key concepts you should keep in mind while learning about navigation:

The direction in which you drag the mouse, from the point where you press the button, determines the direction in which you move. If you change the direction in which you're dragging, the direction in which you're moving will change too.

The distance that you drag the mouse determines the speed with which you move. If you stop moving the mouse, you'll continue moving at a constant speed until you release the mouse button.

When you select a navigation type from the vertical toolbar, your cursor will change to an image similar to the icon on the toolbar. Both the toolbar icon and the cursor icon are shown here.

	Use Walk to move forward and backward along a single horizontal plane. To move forward, click the mouse button and drag straight up, toward the top of the screen. To move backward, click and drag straight down, toward the bottom of the screen.

If you click and drag upward and toward the left or right, you'll move forward at an angle. If you click and drag downward and to the left or right, you'll move backward at an angle.

	Use Pan to move up, down, left, or right within a single vertical plane. Drag straight up to move upward, drag to the left to move left. If you drag along an angle, you'll move along the same angle.

It's important to remember that you will move in the same direction in which you drag the mouse, which means that the world will appear to move in the opposite direction.

	Use Turn to change the angle of your view. You can turn upward, downward, and at other angles, as well as to the left or right. To turn right, drag the mouse directly to the right. To turn downward, drag the mouse directly downward. As with Pan, you move in the same direction as the mouse, so the world appears to move in the opposite direction.

Dragging in any direction will cause you to turn in that direction. This can be confusing at first -- you might, for example, end up with the floor rotating toward you at a 45-degree angle, which isn't something we're used to in real life. Until you've gotten the hang of it, you might want to be careful to always drag the mouse directly up, down, left or right, rather than at an angle (you might find the arrow keys especially useful for this). If you've already turned at an odd angle and become disoriented, read Getting your bearings, below.

	Use Roll to rotate either clockwise or counter-clockwise within a single vertical plane. Drag the mouse to the right to rotate clockwise; drag to the left to rotate counter-clockwise. Unlike other types of navigation, vertical movement of the mouse has no effect with Roll.


Examining objects: Goto and Study

Goto and Study are two types of navigation in WorldView that are specifically designed to help you examine individual objects within a scene.

	Use Goto to pick an object in a scene to move toward. When you select the Goto icon in the toolbar, the cursor will change to a crosshair. Click on an object in the world and you'll move directly to it. If you decide after selecting Goto that you don't want to move toward an object, press the Esc key or simply click on the background in the world rather than on an object.

The way that the Goto tool works is closely tied to the way that a world was authored, which means that there can be situations where it doesn't work as you expect. Goto will always center the selected object in the screen. However, it's sometimes hard for you to tell how large an object is. For example, if you click on an interesting piece of architecture that turns out to be only a part of a large building object, Goto will zoom your view out so that you can see the whole building, rather than zoom in to show just the detail you've selected. If this happens, use another type of navigation to move closer to the detail you'd like to examine.

	Use Study to examine an object from various angles. Select the Study icon in the toolbar, and then click on the object you'd like to examine. Drag the mouse to see the object from different angles. With Study, mouse movement causes spherical rotation. Drag the mouse to the left to see the left side of the object; drag upward to see the top of it, etc. The view moves in the direction of the mouse around the selected object.

It is important to remember that the object you're studying isn't moving -- you are, and your entire view of the world will change accordingly. In other words, once you stop studying an object, you might be left in an odd orientation. Read Getting your bearings below for help on quick ways to recover.

Study can be especially useful in conjunction with Goto to explore individual objects within a world.


Getting your bearings: Zoom Out, Straighten Up, and Restore

WorldView provides three mechanisms that can help you learn your way around a world, and re-orient you if you've navigated your way into an unusual position within a world. Unlike the navigation tools, these buttons invoke automatic actions that take place as soon as you click on them.

	Use Zoom Out to automatically get a distant view of the entire world. You'll move away from the world until it can be seen on your screen in its entirety.
	Use Straighten Up to reposition yourself so that your view of the world is upright. Straighten Up is particularly useful if you've turned at an angle, or been left at an odd orientation once you stop studying an object.
	Use Restore to automatically return to the loaded world's original Viewpoint. Note that clicking on this button is not the same as clicking on the Refresh button in Internet Explorer or Navigator. If there are animations or other behaviors active in the world, Restore won't restart them, but Refresh will.


Keyboard shortcuts for navigating

Instead of clicking on the toolbar, you can use these keyboard shortcuts.

To change navigation types:

Walk:	Ctrl+Shift+W

Pan:	Ctrl+Shift+P

Turn:	Ctrl+Shift+T

Roll:	Ctrl+Shift+R

Goto:	Ctrl+Shift+G

Study:	Ctrl+Shift+S

To navigate with the arrow keys:

Drag left:	Left arrow

Drag right:	Right arrow

Drag up:	Up arrow

Drag down:	Down arrow

To perform automatic actions:

Zoom Out:	Ctrl+Shift+Z

Straighten Up:	Ctrl+Shift+U

Restore:	Ctrl+Shift+E

Next Viewpoint:	Page Down

Previous Viewpoint:	Page Up


Interacting with worlds: Locating sensors and hyperlinks

As you move the cursor over objects in a world, circular lines may appear around the cursor. This indicates that the mouse is over a VRML sensor; clicking will trigger some sort of interesting activity in the scene. Exactly what happens is decided by the VRML author, the best way for you to find out is to click!

The table below shows the sensor cursors for each navigation type.

Walk	Pan	Turn	Roll	Goto	Study

The actions of Goto and Study will always override sensors. In other words, if you select Goto and click on an object that is a sensor, you'll go to the object rather than activate the sensor. (To activate the sensor, click on it again once the Goto is complete.)

You may also come across hyperlinks, which may be links to other VRML worlds, to specific viewpoints within the current world, or to HTML documents. When the cursor is over an object that's a hyperlink, it changes to a hand:

	Simply click to follow the link.

You might also come across an object that is both a sensor and a hyperlink, in which case this cursor will appear:

	Clicking the mouse in this case will activate the sensor. To follow the hyperlink, hold down the Ctrl key and click the mouse.

(While the hyperlink is loading, the Intervista logo at the bottom right of the window will animate, and spin like a lighthouse.)


Seeing where you're going: Using the headlight

Occasionally, you'll encounter a world where you can't really see much because it doesn't have enough light. When this happens, you can turn on a light of your own by choosing "Headlight On" from the Graphics item on the right-button pop-up menu. When the headlight is on, the area directly in front of you will always be illuminated.

VRML authors can also specify the setting of your headlight, so you might find that it's turned on or off automatically as you browse through different worlds.

You may use the Options dialog to change the default setting of the headlight. See Specifying defaults, below.


Avoiding the furniture: Preventing collisions

By default, WorldView will allow you to pass through objects in your path. If the objects are large, your view of the world may be temporarily obstructed as you move through them.

To keep from passing through objects, turn on "Prevent Collisions," which is located under Movement on the right-button pop-up menu. When a check mark appears next to this item, you won't be able to "share space" with objects. Instead, they will block your way and you will have to navigate around them.

VRML authors can also control when you're allowed to pass through objects and when you can't. You may be able to pass through certain objects even when you have "Prevent Collisions" turned on.

You may use the Options dialog to change the default setting of "Prevent Collisions." See Specifying defaults, below.


Gunning the engine: Adjusting your speed

When you're navigating in WorldView, the speed with which you move is determined by the distance you drag the mouse. The farther you drag, the faster you move. You can control the way that distance relates to speed using the items under Speed on the right-button pop-up menu.

The default setting for Speed is "Medium." If you choose a faster speed, shorter dragging distances will be needed to increase your movement speed. If you choose a slower speed, you'll have to move the mouse further to increase your movement speed. Typically this is a matter of personal preference, although novice users might find faster speeds somewhat unwieldy.

Many factors determine the maximum possible navigation speed, including the complexity of the world, the image quality you've selected, and the speed of the computer you're using. The items on this menu don't affect the maximum speed, they simply determine the amount of mouse movement required to attain it.


Controlling Image Quality

The Graphics item on the right-button pop-up menu provides several ways for you to control image quality. Higher image quality almost always results in longer loading time and slower navigation, so you can use the options described here to trade beauty for speed in worlds where it's appropriate.

•	Smooth or Flat Shading, and Wire Frame

•	Full Color

•	Dithering

•	High Quality Text


Smooth or Flat Shading, and Wire Frame

The table below shows the difference between these three options.

Smooth Shading	Flat Shading	Wire Frame

When "Smooth Shading" is selected, the object appears to be smoothly colored across its surface. This is the highest image quality. When "Flat Shading" is selected, the object still appears to be solid, but is faceted. When "Wire Frame" is selected, the object appears to be outlined with wires rather than solid. Wire Frame is the lowest image quality.

By default, the same image quality is used when you're moving and when you're standing still. You may use the "When Moving" menu to specify that a selected image quality always be used when you are navigating through a world.

The initial settings for the image quality when moving and at rest may also be preset by the VRML author, but may still be changed through the Options... item in the right mouse menu.


Full Color

Turn on Full Color to see the best possible color quality. If this option is deselected, loading and navigation speed will be significantly increased, but you won't see colored lights or certain kinds of colored lines and dots. If you're in the habit of keeping this option off and you visit a world that seems unusually empty, try turning on Full Color.

The initial setting for the Full Color option may also be preset by the VRML author, but may still be changed through the Options... item in the right mouse menu.


Dithering

Dithering refers to the blending of shaded surfaces. When this option is turned off, shaded surfaces will appear banded, rather than smooth, but you will notice a small improvement in navigation speed.

The initial setting for Dithering may also be preset by the VRML author, but may still be changed through the Options... item in the right mouse menu.


High Quality Text

Selecting this option causes WorldView to generate text in a world as polygonal objects, rather than as an image painted on a plane. Polygonal text offers higher image quality, but requires more memory to generate than texture mapped text.

High Quality Text is on by default.

The initial setting for High Quality Text may also be preset by the VRML author, but may still be changed through the Options... item in the right mouse menu.


Setting WorldView Options

To display the WorldView Options dialog box, choose Options... from the right-button pop-up menu.

•	Downloading textures

•	Using hardware acceleration

•	Rotating objects automatically

•	Selecting input device

•	Specifying defaults


Downloading textures

Textures are picture files, separate from the VRML file, that VRML authors apply to the surfaces of objects. For example, the floor of a world might have a wood texture applied to it. The Downloading textures option in the Options... menu allows the user to control whether or not these textures are downloaded. Deselecting this option can significantly decrease the time you spend downloading worlds.

However, when authors use textures in worlds, they typically expect them to be viewed with the textures loaded. Viewing worlds without textures will detract from their intended appearance and may make them difficult to use.


Using hardware acceleration

If your computer is equipped with a Direct3D graphics accelerator card, turn on this check box to take advantage of it while you're using WorldView.


Rotating objects automatically

When you're examining an object with Study, you can choose to have it rotate automatically after you click on it, instead of rotating it manually by dragging the mouse.

This option may be preset by the VRML author, but may still be changed through the Options... item in the right mouse menu.


Selecting input device

You may choose to use either a mouse or a joystick to control navigation in WorldView. Mouse input is always activated. Joystick input may also be activated by selecting the Use Joystick checkbox in the General tabbed window of the Options... menu.


Specifying defaults

You may customize the default settings of most WorldView options by choosing Options... from the right-button pop-up menu and then clicking on the Worlds tab in the dialog that appears.

Note: The pop-up menu may be disabled by the VRML author.

You may set defaults for the following settings:

•	Collisions

•	Dithering

•	Full Color

•	Headlight

•	High Quality Text

•	Navigation Device

•	Smooth or Flat Shading, and Wire Frame

•	Speed

•	Toolbars


WorldView 2.1 Release Notes

•	WorldView Installation

•	Java External Authoring Interface Installation

•	Sending Feedback

•	Compatibility Notes

•	Known Problems and Important Changes


WorldView Installation

To use WorldView you will need the following:

•	Pentium 100Mhz or better

•	16MB memory

•	20M free disk space

•	Windows 95 or Windows NT with Service pack 3 installed

•	Internet Explorer 3.02 or higher (4.01 recommended)

•	WorldView and Windows NT

DirectX for NT 4.0 is now shipping. The 3D rendering component, Direct3D, was not made available until the release of Service Pack 3 from Microsoft.

WorldView can be installed on Windows NT 4.0 if you have already installed Service pack 3. If you discover problems running WorldView on Windows NT, please be sure to report them to support@intervista.com.


Java External Authoring Interface Installation

For WorldView for Internet Explorer, all Java classes are stored in a .zip file called axWorldView.zip. The location of this file is stored in the registry setting:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Java VM/Classpath.

It should appear first in the Classpath list.

For WorldView for Netscape Navigator, the Java classes required for Java in Script Node support are stored in a .zip file called npmsWorldView.zip. The location of this file is stored in the registry setting:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Java VM/Classpath.

It should appear first in the Classpath list.

The Java classes required for Java External Authoring Interface support are stored in a .zip file called npWorldView.zip. It should be the only .zip file containing Java EAI classes in Netscape Navigator's plugins directory.

Note that the EAI classes for WorldView for Internet Explorer differ from those for WorldView for Netscape Navigator. If you intend to use both products on the same machine, it doesn't matter which of these two .zip files appears first, as long as the two of them appear first and second in the Classpath.


Sending Feedback

Your feedback on the WorldView product is very important to us. Information on performance, features, compatibility, and usefulness will help the Intervista team create a better product. Please visit our support contacts page. Use it to send comments, bug reports, or anything else you'd like us to know.

You may also give us feedback by sending e-mail to support@intervista.com.


Compatibility Notes

•	WorldView supports standard VRML 2.0 files and specification-compliant VRML 1.0 files. If you attempt to read a draft VRML 2.0 file, warnings (and possibly errors) will be displayed.

•	The VRML 2.0, Java in Script Nodes, and JavaScript implementations correspond with the ISO/IEC DIS 14772-1 specification dated 4 April 1997, except as noted in the Developer's Guide and the Known Problems section, below.

•	The Java External Authoring Interface implementation corresponds to the Proposal for a VRML 2.0 Informative Annex dated 21 January 1997.


Known Problems and Important Changes

Important Changes

•	Polygonal text is now supported.

•	Joystick input is now supported.

•	High Quality Text is now the default text setting.

•	Multiple events fired on the same tick from a sensor are now initiated, instead of only the first event going through.

•	The Javascript print() method can be used to print information directly to WorldView's VRML Console. The trace() method, introduced in earlier versions of WorldView, works identically to print(). Although trace() remains supported, you should use print() to ensure interoperability with other browsers.

•	WorldView now supports the data: protocol, as required by the VRML 2.0 spec, section 4.5.4. All file types, including scripts, movies, and audio, may be inlined in a VRML file using this feature. The data: URL may be used for in-line inclusion of base64 encoded data, such as jpeg, gif, and png files.

User Interface and Usability

•	Only one MIDI file may be played at a time. Multiple .WAV files can be played simultaneously.

•	When downloading some worlds you may get a warning concerning gzip files. Click OK on the warning dialog; the world will continue to load normally.

•	Study mode can have unpredictable behavior in worlds that use ProximitySensor-based heads-up-displays.

•	The area under the right-button pop-up menu is not always redrawn once the menu is dismissed.

•	The cursor blinks continuously on many laptop PCs.

•	Some 3D hardware accelerators do not fully support the features in Direct3D, and can introduce limitations. For example, when you are running WorldView with hardware acceleration enabled, transparent objects may appear solid, or you might be unable to see worlds in wireframe. To turn off hardware acceleration, choose "Options" from the right-button pop-up menu and remove the check mark from "Use hardware acceleration."

•	Installing WorldView on a machine without Internet Explorer 3.02 or higher may cause load library errors.

•	DirectShow, which is installed with Internet Explorer 4.0, supports a different set of codecs than Active Movie supported, which was shipped with previous versions. In compliance with the VRML 2.0 specifications, WorldView supports MPEG files. WorldView also supports all Active Movie and DirectShow compatible codecs.

•	For more information on codecs and those supported by DirectShow and Active Movie, go to:

http://www.microsoft.com/netshow/codecs.htm, and

http://www.microsoft.com/netshow/codecsship.htm.

•	Installing Java VM 2.0 with Internet Explorer 3.02 will cause crashes. This version of the Java VM is intended only for use with IE 4.0.

•	We have received reports that some analog joysticks, such as the CH Flightstick Pro and Gamestick 14, do not function well with WorldView. We are working to investigate and resolve this problem.


WorldView 2.1 Developer's Guide

This guide is for developers of VRML content for use with WorldView. It contains information for both WorldView for Netscape Navigator and WorldView for Internet Explorer. It is divided into seven sections:

•	Support for VRML 2.0 describes WorldView's implementation of VRML 2.0 nodes.

•	Support for JavaScript describes support for JavaScript.

•	Support for the Java EAI describes support for the Java External Authoring Interface.

•	Support for Java in Script Nodes describes support for Java, including the security model.

•	Using the EMBED tag in HTML documents describes the ways you may control WorldView user interface settings from within an HTML document.

•	WorldView EXTERNPROTO Extensions lists and describes node extensions for WorldView.

•	DirectX files describes the DirectX file format extension implemented by WorldView.

Please be sure to consult the WorldView Release Notes for information about known bugs and important changes.


Support for VRML 2.0

This section describes details of WorldView's VRML 2.0 implementation, including known bugs.

WorldView is fully compliant with the Minimum Conformance requirements in the ISO/IEC DIS 14772-1 VRML 2.0 specification, dated 4 April 1997. Fields considered optional according to the Minimum Conformance requirements are supported unless they are specifically mentioned below.

•	Anchor

•	Collision

•	ColorInterpolator

•	DirectionalLight

•	ElevationGrid

•	Fog

•	FontStyle

•	IndexedFaceSet

•	IndexedLineSet

•	ImageTexture

•	Material

•	MovieTexture

•	NavigationInfo

•	PixelTexture

•	PointLight

•	PointSet

•	Script

•	Sound

•	SpotLight

•	Text

•	Viewpoint


Anchor

Only the first URL specified is used.

In WorldView for Internet Explorer only, URLs that refer to files located on the local disk and contain viewpoint names do not work.


Collision

When the "Prevent Collisions" user option is OFF, users will pass through geometry regardless of Collision nodes. This option is ON by default. To ensure that users will be blocked by geometry, use NavigationInfo type NONE.


ColorInterpolator

The interpolation of colors is performed in RGB color space, not HSV color space.


DirectionalLight

The effect of the color field is only visible when WorldView is in full color mode. (See WorldView's Full Color Setting, below.)


ElevationGrid

In full color mode, vertex colors are supported, but an ElevationGrid with vertex colors is not affected by lights. When full color is off, the vertex colors are averaged to compute face colors, which are affected by lights. (See WorldView's Full Color Setting, below.)


Fog

The fogType is ignored and always assumed to be "LINEAR." Fog is only visible when WorldView is in full color mode. (See WorldView's Full Color Setting, below.)


FontStyle

The family field may include the names of any installed Windows fonts, in addition to "SERIF," "SANS," and "TYPEWRITER." If none of the specified fonts are available on the viewer's system, "SERIF" is used instead.


IndexedFaceSet

In full color mode, vertex colors are supported, but an IndexedFaceSet with vertex colors is not affected by lights. When full color is off, the vertex colors are averaged to compute face colors, which are affected by lights. (See WorldView's Full Color Setting, below.)


IndexedLineSet

Fully supported in full color mode. With full color off, the color field is ignored, and the emissiveColor of the Material node is used to color the line set. (See WorldView's Full Color Setting, below.)


ImageTexture

Supported file types are GIF, BMP, JPG, RAS, PPM and PNG.

The repeatS and repeatT fields are ignored.

Intermediate alpha opacities are not supported. Pixels with alpha less than 0.5 appear fully transparent, and pixels with alpha greater than or equal to 0.5 appear fully opaque.


Material

The ambientIntensity field is not supported.

The appearance of transparent materials can be greatly affected by graphics accelerator cards.


MovieTexture

File types are supported through Direct Show. Audio is supported in all formats.

The repeatS and repeatT fields are ignored. Negative values in the speed field are ignored.

Intermediate alpha opacities are not supported. Pixels with alpha less than 0.5 appear fully transparent, and pixels with alpha greater than or equal to 0.5 are opaque.

When using animated GIFs as textures, the pixel width and height must each be a power of two, for example: 256x128, 64x64, etc.


NavigationInfo

The speed field is not supported.

The first value of the avatarSize field is used to determine the allowable distance between the user and geometry during collision detection. Other values in this field are ignored.

The NONE type disables both toolbars, the Navigation commands on the right-button pop-up menu, and the ability to navigate using the mouse. The user may not change these settings.

The WALK, FLY, and EXAMINE types set the initial navigation mode when the world is loaded.

Type:	Browser allows:
WALK	Walk and Turn
FLY	Walk, Turn, Pan, and Roll
EXAMINE	Study

The "GoTo" function is allowed if the type includes WALK, FLY, or ANY. "Zoom Out," Straighten Up," and viewpoint navigation are not allowed if the type is "NONE."

If the type is ANY, viewpoint transitions triggered by Anchor nodes or the loadURL() scripting method are animated and trigger sensors.

If Headlight is set to FALSE, the user may not enable the headlight.


PixelTexture

The repeatS and repeatT fields are ignored.

Intermediate alpha opacities are not supported. Pixels with alpha less than 0.5 appear fully transparent, and pixels with alpha greater than or equal to 0.5 are opaque.


PointLight

The effect of the color field is only visible when WorldView is in Full Color mode. (See WorldView's Full Color Setting, below.)

The radius field is emulated using quadratic attenuation. If the attenuation field is set to something other than the default (1 0 0), the radius field is ignored.


PointSet

When full color is off, the color field is ignored, and the emissiveColor of the Material node is used to color the point set. (See WorldView's Full Color Setting, below.)


Script

Script nodes may contain Java or Javascript. (VRMLScript is supported to the extent that it overlaps with JavaScript.) If the url field does not specify a file, it must begin with one of the following:

•	"javascript:

•	"vrmlscript:

The Script node recognizes the  "java:" protocol, which permits users to specify a Java class in a package directly in the VRML file.

Syntax:  java:codebase:classname

where codebase is the URL for the root of the Java class hierarchy, and classname is the fully qualified name of the Java class, separated with periods.

If there is an error in a Script node, the browser sends a notification to the VRML Console. Further events to the Script node are ignored.

A line number of "0" is incorrectly reported when an error occurs on the last line of a script contained within a Script node.

The loadURL scripting method uses only the first specified URL.

See Support for JavaScript and Support for Java in Script Nodes, below.


Sound

The sound model is spherical rather than ellipsoidal. Values in the maxFront and maxBack fields are averaged to determine the radius of the outer sphere; minFront and minBack are averaged to determine the radius of the inner sphere.


SpotLight

The effect of the color field is only visible when WorldView is in Full Color mode. (See WorldView's Full Color Setting, below.)


Text

WorldView allows the user to specify how text will be generated, and the resultant text image quality.

WorldView's default text is polygonal. Selecting the High Quality Text option, which is on by default in the WorldView Options... dialog, causes text to be generated as a polygonal mesh. WorldView extracts outline curve information from the TrueType font to produce this mesh.

When High Quality Text is not selected, text is generated by rendering a bitmap, which is then applied as a texture map to a simple rectangle.

Bitmapped text offers better performance when a long text string is imported. High quality, polygonal text offers better performance when shorter text strings are displayed, and better appearance overall. Polygonal text maintains its outline quality at any scale. Texture mapped text will become pixilated at close range.

The maxExtent field of the Text node is not supported when high quality text is used.

See the WorldView Extensions BrowserSettings section for more information on controlling the Text options within the WorldView browser.


Viewpoint

If a Viewpoint node has both

•	jump set to FALSE, and

•	a string in the description field

the user's position will change if they choose Viewpoint from the menu in the WorldView user interface. Changes to this Viewpoint that occur via any other mechanism will not cause the user's position to change, because jump is set to FALSE. To avoid this behavior, prevent the Viewpoint from appearing in the menu by not providing a description for it.


data: protocol

WorldView now supports the data: protocol, as required by the VRML 2.0 spec, section 4.5.4. All file types, including scripts, movies, and audio, may be inlined in a VRML file using this feature. The data: URL may be used for in-line inclusion of base64 encoded data, such as jpeg, gif, and png files.


WorldView's Full Color Setting

There are several features in VRML that are only visible in WorldView when the Full Color setting is on. Full Color is off by default, but may be controlled on a per-session basis from the "Graphics" item on the right mouse button pop-up menu. The default may be changed permanently by choosing "Options..." from the right mouse button pop-up menu, and changing the setting of the "Full Color" check box in the Options dialog.

The Full Color setting has a significant effect on navigation speed.

This list summarizes VRML 2.0 nodes that are affected when Full Color is OFF:

•	The color field for PointLight, DirectionalLight, and SpotLight is ignored.

•	Fog does not appear.

•	IndexedFaceSet vertex colors are averaged to compute face colors, if colorPerVertex is set to TRUE.

•	ElevationGrid vertex colors are averaged to compute face colors, if colorPerVertex is set to TRUE.

•	The color field for IndexedLineSet is ignored, and the emissiveColor of the Material node is used to specify the line color.

•	The color field for PointSet is ignored, and vertex colors are averaged to compute face colors.

These nodes and fields are fully visible when Full Color is ON.

See the WorldView Extensions BrowserSettings section for more information on controlling the Full Color options within the WorldView browser.


Support for JavaScript

WorldView's JavaScript implementation conforms to the JavaScript specification included in Annex C of the ISO/IEC DIS 14772-1 VRML 2.0 specification, dated 4 April 1997.

JavaScript and the VRML Console

Javascript alert statements are routed to WorldView's VRML Console. (Select "Show VRML Console" from the right-button Help menu.)

The Javascript print() method can be used to print information directly to WorldView's VRML Console. The trace() method, introduced in earlier versions of WorldView, works identically to print(). Although trace() remains supported, you should use print() to ensure interoperability with other browsers.

WorldView's JavaScript interpreter requires that all statements be terminated by semicolons.

Variable Scoping

Variables declared with the var keyword are local to the function in which they are declared. Variables not declared with the var keyword are global to the Script node in which they are used, and are visible in all functions of the Script node, but not in functions of other script nodes. Script node fields and events are in the same name space as global variables.

Type Conversion in JavaScript Expressions

JavaScript automatically converts between data types when necessary while evaluating expressions. The following table describes how WorldView's JavaScript implementation performs conversion from each data type to each other data type.

Find the source data type in the Data Type column, then find the cell in that row whose column corresponds to the destination data type. "NS" indicates that the conversion is currently not supported by WorldView. Conversion of any non-object into an object is not supported.

Data Type	Function	Number	Boolean	String
function		error	error	NS
object	error	error	true	NS
Null object	NS	0	false	NS
number  (non-zero)	error		true	toString
number (0)	error		false	"0"
Error (NaN)	error		NS	NS
+ infinity	error		NS	NS
- infinity	error		NS	NS
false	error	0		"false"
true	error	1		"true"
string  (non-null)	NS	numeric  representation	true
null string	error	error	false

Known problems

The JavaScript eval() function is not supported.


Support for the Java EAI

The Java EAI is now fully supported according to the Proposal for a VRML 2.0 Informative Annex dated 21 January 1997. It is believed to be compatible with the EAI classes from other browsers.

WorldView uses the vrml.external.* naming convention, not the old vrml.* naming convention.

Requirements for Internet Explorer

To access the Java EAI with WorldView for Internet Explorer, a Java applet must be considered a "trusted applet." This can be done in two ways:

Place the applet in a digitally signed cabinet file. This can be done using the CabDevKit provided with the Microsoft Java SDK. The Microsoft Web site contains additional information on using signed CAB files to distribute EAI applets.

Put the applet's class files in your CLASSPATH environment variable. This is useful for development purposes. Microsoft Visual J++ does this automatically when debugging.

Two examples of Using WorldView’s Java EAI are provided here:

•	in Internet Explorer 3.x, and

•	in Netscape Navigator and Internet Explorer 4.x.


Using WorldView's Java EAI in Internet Explorer 3.x
Using WorldView’s Java EAI in Internet Explorer 3.x

The following example demonstrates using WorldView's Java EAI in Microsoft Internet Explorer 3.x. The VBScript methods "window_onLoad" and "window_onUnLoad" are required to initialize applets that use the Java EAI. These methods are not required for Netscape Navigator.

*********************************************************

*********************************************************

HTML FILE:

<HTML>

<HEAD>

<TITLE>WorldView ActiveX Control Example</TITLE>

</HEAD>

<BODY>

<HR>

<CENTER>

<APPLET name=MyApplet code=MyApplet.class width=700 height=140 MAYSCRIPT>

<!-- for CAB users -->

<PARAM NAME="cabbase" VALUE="SmartConnectors.cab">

</applet>

</CENTER>

<HR>

<CENTER>

<OBJECT ID="WorldView" CLASSID="clsid:b0d7d800-4ebf-11d0-9490-00a02494d8a5" HEIGHT=400 WIDTH=500>

<PARAM NAME="World" VALUE="MyWorld.wrl">

</OBJECT>

</CENTER>

<SCRIPT language="VBScript">

<!--

sub window_onLoad

document.MyApplet.SetControl WorldView

end sub

sub window_onUnLoad

document.MyApplet.FreeControls

end sub

-->

</SCRIPT>

</BODY>

</HTML>

*************************************************

*************************************************

JAVA FILE:

import java.applet.Applet;

import vrml.external.*;

/***********************************************/

public class MyClasses extends Applet {

public void SetControl(Object oc)

{

WorldViewControl.SetControl(oc, this);

InitVrml(); // NOW do the vrml stuff

}

public void FreeControls()

{

WorldViewControl.FreeControls();

}

public void init()

{

setLayout(new FlowLayout());

add(new Button("My Button"));

// other awt stuff etc...

// NO VRML STUFF! SetControl HAS NOT BEEN CALLED YET!

// BROWSER API WON'T WORK!

}

public void InitVrml()

{

Browser browser = Browser.getBrowser(this);

Node node = browser.getNode();

// etc...

}

public void run() {}

// Other Methods ..

}

Note that IE 3.0 also requires the object tag instead of the embed tag, the VBScript code, and the SetControl method in the Java applet, as described below.

*********************************************************

*********************************************************

HTML FILE:

<HTML>

<HEAD>

<TITLE>WorldView ActiveX Control Example</TITLE>

</HEAD>

<BODY>

<HR>

<CENTER>

<APPLET name=MyApplet code=MyApplet.class width=700 height=140 MAYSCRIPT>

<!-- for CAB users -->

<PARAM NAME="cabbase" VALUE="SmartConnectors.cab">

</applet>

</CENTER>

<HR>

<CENTER>

<OBJECT ID="WorldView" CLASSID="clsid:b0d7d800-4ebf-11d0-9490-00a02494d8a5"

HEIGHT=400 WIDTH=500>

<PARAM NAME="World" VALUE="MyWorld.wrl">

</OBJECT>

</CENTER>

<SCRIPT language="VBScript">

<!--

sub window_onLoad

document.MyApplet.SetControl WorldView

end sub

sub window_onUnLoad

document.MyApplet.FreeControls

end sub

-->

</SCRIPT>

</BODY>

</HTML>

*************************************************

*************************************************

JAVA FILE:

import java.applet.Applet;

import vrml.external.*;

/***********************************************/

public class MyClasses extends Applet {

public void SetControl(Object oc)

{

WorldViewControl.SetControl(oc, this);

InitVrml(); // NOW do the vrml stuff

}

public void FreeControls()

{

WorldViewControl.FreeControls();

}

public void init()

{

setLayout(new FlowLayout());

add(new Button("My Button"));

// other awt stuff etc...

// NO VRML STUFF! SetControl HAS NOT BEEN CALLED YET!

// BROWSER API WON'T WORK!

}

public void InitVrml()

{

Browser browser = Browser.getBrowser(this);

Node node = browser.getNode();

// etc...

}

public void run() {}

// Other Methods ..

}


Using WorldView's Java EAI in Netscape Navigator or Internet Explorer 4.x
Using WorldView’s Java EAI in Netscape Navigator or Internet Explorer 4.x

The following example demonstrates using WorldView's Java EAI in Microsoft Internet Explorer 4.x, or Netscape Navigator.

For Netscape Navigator, or Internet Explorer 4.0 or later, you may simply call Browser.getBrowser directly in the init() method, as described below.

*********************************************************

*********************************************************

HTML FILE:

<HTML>

<HEAD>

<TITLE>WorldView ActiveX Control Example</TITLE>

</HEAD>

<BODY>

<embed src="MyWorld.wrl" height=500 width=400>

<applet code="MyApplet.class" height=140 width=700 MAYSCRIPT>

</BODY>

</HTML>

*************************************************

*************************************************

JAVA FILE:

import java.applet.Applet;

import vrml.external.*;

/***********************************************/

public class MyClass extends Applet

{

public void init()

{

setLayout(new FlowLayout());

add(new Button("My Button"));

//ok to get browser now

Browser browser=Browser.getBrowser(this);

Node node=browser.getNode();

}

}

public void run() {}

// Other Methods ..

}


Support for Java in Script Nodes

The Java in Script nodes implementation is according to Annex B of the ISO/IEC DIS 14772-1 VRML 2.0 specification, dated 4 April 1997.

Java 1.1 support

WorldView's Java in Script nodes implementation uses the Microsoft Java VM, and supports the Java 1.1 standard to the same extent as Microsoft Internet Explorer 4.0.

System.out and System.err

Java's System.out and System.err streams are routed to the WorldView VRML Console. (Select "Show VRML Console" from the right-button Help menu.)

Security

For Java in Script nodes, WorldView provides an environment similar to Netscape or Internet Explorer for running Java code. Script nodes have the following restrictions, which are similar to Java applets:

•	Scripts cannot read, write or delete files

•	Scripts cannot execute programs (i.e. Runtime.exec)

•	Scripts cannot create ServerSockets

•	Scripts cannot link to native code (i.e. System.loadLibrary)

•	Scripts cannot create ClassLoaders

•	Scripts may bring up AWT top-level windows

•	Scripts may make socket connections only to their host of origin.

Java classes loaded from the CLASSPATH are considered "trusted code" and can perform operations ordinarily not allowed by the security manager, such as reading/writing files and making access to any network host.


Using the EMBED tag in HTML documents

You may use the HTML EMBED tag to specify user interface settings that will be used in WorldView when a VRML world is embedded in an HTML document. The following tags are supported:

Tag	Setting	Effect
VRML_POPMENU,  SGI_POPMENU	TRUE	Enables the right mouse button menu
	FALSE	Disables the right mouse  button menu
VRML_IMAGEQUALITY,  SGI_IMAGEQUALITY	BEST	Sets image display to  "Smooth Shading"
	SMOOTH	Sets image display to  "Flat Shading"
	SMOOTHEST	Sets image display to  "Wire Frame”
VRML_SPLASHSCREEN,  SGI_SPLASHSCREEN	TRUE	Displays splash screen at startup
	FALSE	Prevents splash screen from appearing at startup
VRML_DASHBOARD, SGI_DASHBOARD	TRUE	Turns on horizontal and  vertical toolbars
	FALSE	Turns off horizontal and  vertical toolbars
VRML_FULLCOLOR	TRUE	Turns on Full Color mode
	FALSE	Turns off Full Color mode
VRML_DITHERING	TRUE	Turns on dithering
	FALSE	Turns off dithering


WorldView EXTERNPROTO Extensions

WorldView implements four new nodes using the standard EXTERNPROTO extension mechanism described in the VRML 2.0 specification:

•	BillboardText

•	BrowserSettings

•	PopupText

•	StreamingAudioClip


BillboardText

BillboardText {

exposedField MFString string []

exposedField SFNode fontStyle NULL

exposedField MFFloat length [] # [0,inf)

exposedField SFFloat maxExtent 0.0 # [0,inf)

}

URN: "urn:inet:intervista.com:BillboardText"

The BillboardText node is an Intervista extension to VRML 2.0, which facilitates the display of efficient, high quality text in the VRML scene. The text is billboarded so that it always faces the user. Unlike PopupText, the text of a BillboardText node is perspective scaled by the distance from the camera.

Example:

#VRML V2.0 utf8

EXTERNPROTO BillboardText [

exposedField MFString string

exposedField SFNode fontStyle

exposedField MFFloat length

exposedField SFFloat maxExtent

] "urn:inet:intervista.com:BillboardText"

Shape {

appearance Appearance {

material Material {

diffuseColor 1 0 0

}

}

geometry BillboardText {

string "Hello, world!"

}

}


BrowserSettings

BrowserSettings {

exposedField SFString quality  "DEFAULT"

exposedField SFString qualityWhenMoving "DEFAULT"

exposedField SFString showNavigationBar "DEFAULT"

exposedField SFString fullColor "DEFAULT"

exposedField SFString dithering "DEFAULT"

exposedField SFString rotateObjectsAutomatically "DEFAULT"

exposedField SFString highQualityText "DEFAULT"

exposedField SFString preventCollisions "DEFAULT"

exposedField SFString popupMenu "DEFAULT"

}

Intervista has introduced a new node: BrowserSettings, using the standard EXTERNPROTO extension mechanism described in the VRML 2.0 specification, with the URN urn:inet:intervista.com:BrowserSettings.

The BrowserSettings node enables VRML authors to control WorldView's preference settings from within a VRML file. Each field in the BrowserSettings node controls a different WorldView preference. The initial value of every field is "DEFAULT," which loads the user's default setting for the selected preference.

exposedField SFString quality "DEFAULT"

exposedField SFString qualityWhenMoving "DEFAULT"

Using this extension to control the preference settings simply defines the initial setting for each item. The user retains the ability to reset the preference through the Options... item in the right mouse menu.

quality: Sets the graphical quality to display the scene. The accepted values and the corresponding options on the right mouse button menu are:

"BEST" = Smooth Shading

"GOOD" = Flat Shading

"POOR" = Wire Frame

This setting can also be controlled with the VRML_IMAGEQUALITY EMBED tag.

qualityWhenMoving: Sets the graphical quality to display the scene when the user is navigating. The accepted values and the corresponding options on the "When Moving" submenu of the right mouse menu are:

"BEST"  = Smooth Shading

"GOOD" = Flat Shading

"POOR"  = Wire Frame

"NONE" = No Change

showNavigationBar: Shows or hides the navigation bar. Accepted values are "DEFAULT,"  "TRUE," and "FALSE."  This is equivalent to the "Show Navigation Bar" option on the right mouse menu. This setting can also be controlled with the VRML_DASHBOARD EMBED tag.

fullColor: Enables or disables Full Color mode. Accepted values are "DEFAULT,"  "TRUE," and "FALSE."  This is equivalent to the "Full Color" option on the right mouse menu. This setting can also be controlled with the VRML_FULLCOLOR EMBED tag.

dithering: Enables or disables dithering. Accepted values are "DEFAULT," "TRUE" and "FALSE." This is equivalent to the "Dithering" option on the right mouse menu. This setting can also be controlled with the VRML_DITHERING EMBED tag.

rotateObjectsAutomatically: Enables or disables automatic rotation of objects. Accepted values are "DEFAULT," "TRUE," and "FALSE." This is equivalent to the "Rotate Objects Automatically" option in the WorldView Options dialog box.

highQualityText: Enables or disables high quality text. Accepted values are "DEFAULT," "TRUE," and "FALSE." This is equivalent to the "High Quality Text" option on the right mouse menu.

preventCollisions: Enables or disables collision detection. Accepted values are "DEFAULT," "TRUE," and "FALSE." This is equivalent to the "Prevent Collisions" option on the right mouse menu.

popMenu: Enables or disables the right mouse menu. Accepted values are "DEFAULT,"  "TRUE," and "FALSE."  This setting can also be controlled with the VRML_POPMENU EMBED tag.

Settings defined in the BrowserSettings node will be the world's default settings, but may be altered by the user through the right mouse menu.

BrowserSettings is a WorldView extension to VRML. To use it, you must declare it as an EXTERNPROTO, as shown below:

EXTERNPROTO BrowserSettings [

exposedField SFString quality

exposedField SFString qualityWhenMoving

exposedField SFString showNavigationBar

exposedField SFString fullColor

exposedField SFString dithering

exposedField SFString rotateObjectsAutomatically

exposedField SFString highQualityText

exposedField SFString preventCollisions

exposedField SFString popupMenu

] "urn:inet:intervista.com:BrowserSettings"


PopupText

PopupText {

exposedField SFVec3f position 0 0 0

exposedField MFString string []

exposedField SFColor textColor 1 1 1

exposedField SFColor backgroundColor 0 0 0

exposedField SFColor borderColor 1 1 1

exposedField SFInt32 borderWidth 1

exposedField SFString family [ "SERIF" ]

exposedField SFString style "PLAIN"

exposedField SFString anchor "CENTER"

exposedField SFString justify "LEFT"

exposedField SFInt32 pointSize 12

exposedField SFBool transparent FALSE

exposedField SFString language ""

exposedField SFString positionType "LOCAL"

}

URN: "urn:inet:intervista.com:PopupText"

The PopupText node is an Intervista extension to VRML 2.0, which provides a way to overlay 2D text over the VRML scene. Possible applications include labels for charts, pop-up "tool tips" over objects, score indicators, and so on.

positionType: Determines the position of the pop-up text. This field is interpreted according to the value of the positionType field. Possible values for the positionType field are "LOCAL," "VIEWPORT" and "SCREEN."

positionType "LOCAL" sets the position of the pop-up text in the local coordinate system. This position is transformed into screen coordinates to place the text in the rendering window.

positionType "VIEWPORT" sets the position of the pop-up text in the viewport. The X and Y values of the position field may range from 0 to 1, and the Z value is ignored. For X, 0 is the left side of the viewport and 1 is the right side. For Y, 0 is the bottom of the viewport and 1 is the top.

positionType "SCREEN" sets the position of the pop-up text in screen coordinates. The X and Y values of the position field are specified in pixels, with 0 being the left side of the viewport for X and the top of the viewport for Y.

In all cases, the text is clipped to the rendering window, and is not obscured by the objects of the VRML scene.

The string field may contain multiple text strings specified using the UTF-8 encoding as specified by ISO 10646-1:1993. Each text string is displayed as a line of text.

textColor: Specifies the color of the text.

transparent: Specifies whether the text has a colored background rectangle behind it. If transparent is FALSE, the backgroundColor field specifies the background color of the rectangle.

borderWidth: Specifies the thickness of the border around the text. If borderWidth is 0, no border is displayed. The border is displayed in the color specified by the borderColor field.

Font attributes are defined with the family, style and pointSize fields. The family and style fields are interpreted in the same way as the fields with the same names in the FontStyle node. The pointSize field specifies the point size used to display the text.

justify: determines the horizontal alignment of the text. Possible values are "LEFT" (the default), "CENTER" and "RIGHT." "LEFT" aligns the beginning of each string of text with the left side of the text rectangle. "RIGHT" aligns the end of each string with the right side of the text rectangle. "CENTER" centers each line of text horizontally in the text rectangle.

anchor: specifies which corner or side of the text rectangle is coincident with the 3D point specified by the position field. Valid values are "CENTER," "N," "S," "E," "W," "NW," "SW," "NE," and "SE."

language: specifies the context of the language for the text string. This field is interpreted in the same way as the language field of the FontStyle node.

Example:

The following example is a frame-rate indicator which appears in the bottom right-hand corner of the viewing window.

#VRML V2.0 utf8

EXTERNPROTO PopupText [

exposedField SFVec3f position

exposedField MFString string

exposedField SFColor textColor

exposedField SFColor backgroundColor

exposedField SFColor borderColor

exposedField SFInt32 borderWidth

exposedField MFString family

exposedField SFString style

exposedField SFString anchor

exposedField SFString justify

exposedField SFInt32 pointSize

exposedField SFBool transparent

exposedField SFString language

exposedField SFString positionType

] "urn:inet:intervista.com:PopupText"

DEF TEXT PopupText {

family "TYPEWRITER"

style "PLAIN"

pointSize 12

borderWidth 1

textColor 1 1 1

borderColor 0 0 0

anchor "SE"

positionType "VIEWPORT"

position 1 0 0

backgroundColor 0 0 0

}

DEF TIMER TimeSensor {

loop TRUE

}

DEF SCRIPT Script {

eventIn SFTime go

eventOut MFString frameRate

url "javascript: function go() {

frameRate[0] = browser.getCurrentFrameRate();

}"

}

ROUTE TIMER.time TO SCRIPT.go

ROUTE SCRIPT.frameRate TO TEXT.set_string


StreamingAudioClip

StreamingAudioClip {

eventIn MFInt32 set_data

exposedField SFString description ""

exposedField SFFloat pitch 1.0

exposedField SFTime startTime 0

exposedField SFTime stopTime 0

eventOut SFBool isActive

eventOut SFBoolField isReady

}

Intervista has introduced a new node: StreamingAudioClip, using the standard EXTERNPROTO extension mechanism described in the VRML 2.0 specification, with the URN urn:inet:intervista.com:StreamingAudioClip.

A StreamingAudioClip node is similar to the AudioClip node, and can be instantiated anywhere in the scene graph where an AudioClip node is expected.

StreamingAudioClip replaces AudioClip's url field with a set_data eventIn, which allows dynamic feeding of audio data.

The isReady eventOut indicates when the node is ready to accept data. Its value is TRUE when the node has internal buffer space, and FALSE when the node is flooded.

The audio data is packed into an MFInt32 event. The first element of set_data (set_data[0]) contains the sequence number of the data chunk. The second element (set_data[1]) specifies the size of audio data in bytes. The size does not include the first two elements. Subsequent elements contain actual audio data.

A chunk with sequence number 0 contains a header specifying the format of the data to follow. A chunk with sequence number -1 indicates end of stream.

Audio data is packed into MFInt32 using little endian conventions, placing the least significant byte first.

StreamingAudioClip is a WorldView extension to VRML. To use it, you must declare it as an EXTERNPROTO, as shown below:

EXTERNPROTO StreamingAudioClip [

eventIn MFInt32 set_data

exposedField SFString description

exposedField SFFloat pitch

exposedField SFTime startTime

exposedField SFTime stopTime

eventOut SFBool isActive

eventOut SFBoolField isReady

] "urn:inet:intervista.com:StreamingAudioClip"


DirectX Files

Microsoft defines a file format to be used in conjunction with Direct3D. These files have an .X extension, and can contain both geometry and animations. With WorldView, .X files may be loaded as main worlds, or as Inlines. To be loaded as main worlds, the user must associate the .X extension with WorldView (standard Windows procedure). Then, double-clicking an DirectX file will launch WorldView and open the file.

DirectX files can also be specified as values of the url fields of Inline nodes.

#VRML V2.0 utf8

Inline {

url "egg.x"

}